/*
 * To  change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package menus;

import bitclub.Articulo;
import bitclub.ArticuloAlquilado;
import bitclub.BitUtil;
import bitclub.Cliente;
import java.util.Date;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import javax.management.timer.Timer;

/**
 *
 * @author JAVA
 */
public class OpcionesAlquiler {

    /**
     * Opcion para seleccionar un cliente, un grupo de artículos y efectuar un alquiler
     */
    public static void opcionAlquilar() {

        //Identificamos al cliente
        Cliente cliente = Selector.cliente();
        //Si se pulsa en salir devolverá null
        if (cliente == null) {
            return;
        }

        //Mostrarmos el nombre del cliente
        System.out.println("Cliente\n-----------------------");
        System.out.println(cliente.getNombre() + " " + cliente.getApellidos() + " [" + cliente.getDni() + "]\n\n");

        //Necesitamos artículos para meter en la lista de ArticulosAlquilados
        Set<ArticuloAlquilado> articulosAlquilados = new HashSet();
        //Este es un artículo suelto
        Articulo articulo;

        boolean quieresMas = false;
        do {
            //Pedimos un artículo TAMBIEN PUEDE SER VIDEOJUEGO!!!!
            articulo = Selector.pelicula();
            //Evitar seleccionar una ya seleccionada

            //Si pulsamos en salir cancelamos el alquiler completo
            if (articulo == null) {
                return;
            }

            //Si se selecciona correctamente lo añadimos a la lista

            //Calculamos la fecha de entrega programada
            long longAhora = System.currentTimeMillis();
            Date ahora = new Date(longAhora);
            int numDias = articulo.getTarifa().getNumDias();
            Date entrega = new Date(ahora.getTime() + Timer.ONE_DAY * numDias);
            double precio = articulo.getTarifa().getPrecio();

            //Metemos el artículo en la lista de ArtículosAlquilados
            //Comprobar ofertas de tipo dia de semana            



            BitUtil.borra();
            if (!articulosAlquilados.add(new ArticuloAlquilado(articulo, entrega, precio))) {
                System.out.println("El articulo está en la lista");
            }

            //VERIFICAR QUE NO SE META DOS VECES EL MISMO ARTICULO!?!?!?

            //Mostramos el cliente y las cosas que lleva seleccionadas hasta ahora

            System.out.println("Cliente\n-----------------------");
            System.out.println(cliente.getNombre() + " " + cliente.getApellidos() + " [" + cliente.getDni() + "]\n");
            System.out.println("Articulos\n-----------------------");
            Iterator it = articulosAlquilados.iterator();
            int contador = 0;
            while (it.hasNext()) {
                ArticuloAlquilado aa = (ArticuloAlquilado) it.next();
                articulo = aa.getArticulo();
                contador++;
                System.out.println("");
                System.out.println("" + contador + ".-" + articulo.getTitulo() + " (" + articulo.getAno() + ") [Cod. " + articulo.getId() + "]");
            }
            System.out.println("-----------------------\n\n");

            //Preguntamos si desea más cosas
            quieresMas = BitUtil.dameConfirmacion("Desea añadir algo más? (S/N) ");
        } while (quieresMas);

        boolean correcto = BitUtil.dameConfirmacion("Todo correcto? (S/N) ");
        if (correcto) {
            //Comprobar oferta numero de articulos
            // calcula precio total
            //poner pelis en no disp. (DB)
            //Crear movimiento (DB)
            //Pedir tipo de pago y si es monedero modificar saldo (DB)
            //Mostramos el ticket por pantalla
            BitUtil.borra();
            System.out.println("Precio total: Mir duro!");
            BitUtil.esperaEnter();
        }
    }

    /**
     * Devolucion de un artículo o varios
     */
    public static void opcionDevolver() {
        //SORPRESA!! NO HAY NADA HECHO
    }

}
